In computer programming, whole program optimization is the compiler optimization of a program using information about all the modules in the program. Normally, optimizations are performed on a per module (per function), "compiland", basis; but this approach, while easier to write and test and less demanding of resources during the compilation itself, do not allow certainty about the safety of a number of optimizations such as aggressive inlining and thus cannot perform them even if they would actually turn out to be efficiency gains that do not change the semantics of the emitted object code.